<?php

namespace addons\qingdong\model;

use think\Exception;
use think\Model;
use traits\model\SoftDelete;

/**
 *回款计划表
 */
class ReceivablesPlan Extends Model {
	use SoftDelete;
    // 表名,不含前缀
    protected $name = 'qingdong_receivables_plan';
	// 开启自动写入时间戳字段
	protected $autoWriteTimestamp = 'int';
	// 定义时间戳字段名
	protected $createTime = 'createtime';
	protected $updateTime = 'updatetime';
	protected $deleteTime = 'deletetime';


	//创建回款计划
	public static function createPlan($params) {
		$staff                     = Staff::info();
		$params['create_staff_id'] = $staff->id;
        $owner_staff_id = $staff->id;
        if($params['contract_id']){
            $owner_staff_id = Contract::where(array('id'=>$params['contract_id']))->value('owner_staff_id');
        }
        $params['owner_staff_id']  = $owner_staff_id;

		$params['status']          = 0;
        if($params['remind']){
            $params['remind_date']=date('Y-m-d',strtotime("-{$params['remind']} day",
                strtotime($params['return_date'])));
        }else{
            $params['remind_date']=$params['return_date'];
        }
		$Model                     = new self;
        $result = $Model->allowField(true)->save($params);

		if (false === $result) {
			// 验证失败 输出错误信息
			throw new Exception($Model->getError());
		}

		return true;
	}
//修改回款计划
    public static function updatePlan($map,$params) {

        if($params['remind']){
            $params['remind_date']=date('Y-m-d',strtotime("-{$params['remind']} day",
                strtotime($params['return_date'])));
        }else{
            $params['remind_date']=$params['return_date'];
        }
        $Model                     = new self;
        $result = $Model->allowField(true)->save($params,$map);

        if (false === $result) {
            // 验证失败 输出错误信息
            throw new Exception($Model->getError());
        }

        return true;
    }

	//合同
	public function contract() {
		return $this->hasOne(Contract::class, 'id', 'contract_id')->field('id,name,num,money');
	}


	//客户
	public function customer() {
		return $this->hasOne(Customer::class, 'id', 'customer_id')->field('id,name,subname');
	}

	//客户
	public function createStaff() {
		return $this->hasOne(Staff::class, 'id', 'create_staff_id')->field('id,name,img');
	}
	//客户
	public function ownerStaff() {
		return $this->hasOne(Staff::class, 'id', 'owner_staff_id')->field('id,name,img');
	}

}
